<?php
class Log
{
	private static $messages = array();

	// Loggar meddelande i en array som nås genom klassvariabel
	public static function LogMessage($message, $error = false)
	{
		Log::$messages[] = array("time" => Time(),
			"message" => $message, "error" => $error);
	}

	// Hämtar meddelandearray ur klassvariabel
	public static function GetMessages()
	{
		return Log::$messages;
	}

	// Loggar meddelande i sessionsvariabeln
	public static function LogSession($message)
	{
	   $_SESSION['Log'][] = array("time" => time(),
		   "message" => $message,
		   "requestNr" => $_SESSION['requestNr']);
	}

	// Loggar meddelande i fil
	public static function LogError($message)
	{
		$file = fopen("log.txt", "a+");
		fwrite($file, date("Y:m:d H:i:s", time()) . " %|% " . $message . " %|% " . $_SERVER['REMOTE_ADDR'] . "\r\n");
		fclose($file);

		// Sparar även i klassvariabelns array
		Log::LogMessage($message, true);
	}

	// Testar klassens metoder
	public static function Test()
	{
		// Loggar ett meddelande.
		Log::LogMessage("Testar Lite");

		// Testar om meddelandet loggades som förväntat.
		$arr = Log::GetMessages();
		if($arr[0]["message"] != "Testar Lite")
		{
			echo "Logtestet misslckades: Informationen loggades inte korrekt.";
			return false;
		}
		$Log = new Log();
		
		if ($Log->LogError("Testar lite här då var") == true)
		{
			echo "LogError misslyckades: informationen loggades inte till filen.";
		}
		
		return true;
	}
}
